package com.test.common;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import com.msg.chestionar.to.IntrebareOptiuneTO;
import com.msg.chestionar.to.IntrebareTO;

@ManagedBean(name = "editIntrebareBean")
@SessionScoped
public class EditIntrebareBean implements Serializable {
	private static final long serialVersionUID = -4759076671753497857L;

	// lista de optiuni
	private List<IntrebareOptiuneTO> optiuni;
	// tipul intrebarii
	private int tip;
	// textul optiunii
	private String optiuneText;
	// textul intrebarii
	private String text;

	// daca intrebarea e cu comentariu
	private boolean comentariu;

	// intrebarea care vine de pe chestionar la incarcare
	private IntrebareTO intrebare;
	
	private IntrebareOptiuneTO optiuneSelectata;

	public String saveIntrebare() {
		
		if (getTip() != 1) {
			this.intrebare.setOptiuni(getOptiuni());
		}
		this.intrebare.setText(getText());
		this.intrebare.setTip(getTip());

		return "editare_chestionar";

	}

	public String home() {
		return "editare_chestionar";
	}

	public String addOptiune() {

		IntrebareOptiuneTO optiune = new IntrebareOptiuneTO();
		optiune.setE_cu_comentariu(getComentariu());
		optiune.setText(getOptiuneText());
		getOptiuni().add(optiune);
		optiuneText="";
		comentariu=false;
		return "editare_intrebare";
		
	}

	public String delete() {

		/*FacesContext context = FacesContext.getCurrentInstance();

		String nrOrdineOptiune = (String) context.getExternalContext()
				.getRequestParameterMap().get("optiuneSelected");
		int nrOrdineOpt = Integer.valueOf(nrOrdineOptiune);
		IntrebareOptiuneTO optiuneTO = null;*/

		/*for (IntrebareOptiuneTO optiune : intrebare.getOptiuni()) {
			if (optiune.getOrderNo() == nrOrdineOpt) {
				optiuneTO = optiune;
			}
		}*/

		if (optiuneSelectata.getId() != null) {
			optiuneSelectata.setMarkedForDelete(true);
		} else {
			this.optiuni.remove(optiuneSelectata);
		}

		return "editare_intrebare";

	}

	public boolean getComentariu() {
		return comentariu;
	}

	public void setComentariu(boolean comentariu) {
		this.comentariu = comentariu;
	}

	public int getTip() {
		return tip;
	}

	public void setTip(int tip) {
		this.tip = tip;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	public List<IntrebareOptiuneTO> getOptiuni() {
		return optiuni;
	}

	public void setOptiuni(List<IntrebareOptiuneTO> optiuni) {
		this.optiuni = optiuni;
	}

	public String getOptiuneText() {
		return optiuneText;
	}

	public void setOptiuneText(String optiuneText) {
		this.optiuneText = optiuneText;
	}

	public IntrebareTO getIntrebare() {
		return intrebare;
	}

	public void setIntrebare(IntrebareTO intrebare) {
		this.intrebare = intrebare;
	}

	public IntrebareOptiuneTO getOptiuneSelectata() {
		return optiuneSelectata;
	}

	public void setOptiuneSelectata(IntrebareOptiuneTO optiuneSelectata) {
		this.optiuneSelectata = optiuneSelectata;
	}

}
